Computer networks can include a plurality of server computers interconnected within, for example, a data center. The server computers typically include expansion boards (also called expansion cards) which can be inserted into expansion slots on the server computers to add functionality to the computer system. A server computer communicates with the expansion cards through an expansion bus which electrically connects the internal hardware of the computer with peripheral devices. One type of expansion card includes a network interface card (NIC), which typically provides the server computer with a dedicated, full-time connection to a network.
One type of expansion bus is a Peripheral Component Interconnect Express (PCIe) bus, which is a high-speed serial computer expansion bus standard. Other bus types can also be used in place of the PCIe bus, such as the ASUS media bus, the multi-bus, SBUS, etc. Expansion cards that include a CPU and/or DRAM are considered to be “smart” cards. The smart expansion cards can be programmed to run various software applications that enable the card to provide increased flexibility over typical hardware-only interface cards.
The expansion cards can have various types of error reporting. For example, PCIe uses the advanced error reporting (AER) to report errors to the host server computer. Example errors can include a link error, a parity error, etc. However, there is limited testing for communication links over the PCIe bus. For example, two PCIe devices (e.g., a root complex and an end point) exchange training sequences to negotiate link parameters, such as data rate, channel width, lane polarity, etc. In order to implement the negotiation, a link training and status state machine (LTSSM) is used. In some cases, the PCIe devices are attached externally to systems via cables, which provides a means by which errors can occur due to rework by technicians or attacks by malicious technicians. Additionally, the expansion cards represent a vulnerability for attacks from malicious software, which can take over the expansion cards and perform acts to disrupt operations of the expansion cards. Routine and reliable testing methods for communication links are needed.